Find Configuration API
The Find Configuration API enables you to programmatically define and manage search attribute settings—such as searchable, storable, and filterable—for product and content attributes within Find. It eliminates the need for manual configuration through the Find Portal’s Search Attribute table.
Key capabilities include:
- Programmatic retrieval and update of attribute configurations
- Real-time validation prior to saving changes
- Automated setup of product and content attribute settings
- A scalable framework designed to support broader configuration management
The Configuration API uses Modules and Sections to organize and manage configuration settings.
Modules
Each module represents a logical application area. For example, the available module is findconfig.
Sections
Each module contains configuration sections. Each section includes:
| Field | Description |
|---|---|
| id | Unique identifier for the section. |
| name | Predefined section name. |
| version | Section version number. |
| properties | Set of properties or attribute configurations. |
Example Section Object
{
"id": 29,
"name": "productSearchAttributes",
"version": 1,
"properties": {
"prop1": "a",
"prop2": "b"
}
Section Types
- Section Configuration API – Retrieve and modify section properties.
- Section Validation API – Validate configuration data before saving.
Configuration API for Search Attributes
Available sections within the findconfig module:
| Section Name | Description |
|---|---|
| productSearchAttributes | Configuration of Find product attributes |
| contentSearchAttributes | Configuration of Find reference content attributes |
Each Site ID includes one instance of each section type. Default canonical attributes are preconfigured, and users can add custom attributes as needed.
Refer to the Find documentation for details: Find: Search Attributes Documentation.
Workflow
- List available sections
- Retrieve a specific section
- Edit JSON configuration
- PUT the updated section (validated automatically)
API Endpoints
List Sections
| Method | GET |
| Endpoint | <HOST>/findconfig/v1/section/productSearchAttributes
|
| Example | http://localhost:6453/findconfig/v1/section/productSearchAttributes
|
[
{
"id": 4,
"uuid": "8d9be02e-8f10-4d7c-a465-9c91c481b7c4",
"name": "productSearchAttributes",
"version": 0,
"sectionDefinitionId": 0,
"siteId": 158
},
{
"id": 5,
"uuid": "8d9be3R1-8f10-4d7c-a465-9c91c481b3R1",
"name": "contentSearchAttributes",
"version": 1
}
]
Get Section
| Method | GET |
| Endpoint | <HOST>/findconfig/v1/section/productSearchAttributes/{SECTION_ID}
|
| Example | http://localhost:6453/findconfig/v1/section/productSearchAttributes/4
|
Example Response:
{
"id": 4,
"uuid": "8d9be02e-8f10-4d7c-a465-9c91c481b7c4",
"name": "productSearchAttributes",
"version": 0,
"sectionDefinitionId": 0,
"properties": [
{
"fieldName": "ingredients",
"dataType": "STRING",
"attributeType": "PRODUCT",
"attributes": {
"filterable": true,
"entityDetectible": true,
"regionAware": true,
"facetable": true,
"storable": true,
"sortable": false,
"multiValued": true,
"searchable": true
},
"displayName": "Ingredients",
"isCanonical": false,
"resettableStatus": "RESETTABLE"
}
],
"siteId": 158
}
Update Section
| Method | PUT |
| Endpoint | <HOST>/findconfig/v1/section/productSearchAttributes/{SECTION_ID}
|
| Example | http://localhost:6453/findconfig/v1/section/productSearchAttributes/4
|
Example Request
{
"id": 4,
"uuid": "8d9be02e-8f10-4d7c-a465-9c91c481b7c4",
"name": "productSearchAttributes",
"version": 0,
"sectionDefinitionId": 0,
"properties": [
{
"fieldName": "ingredients",
"dataType": "STRING",
"attributeType": "PRODUCT",
"attributes": {
"filterable": false,
"entityDetectible": true,
"regionAware": true,
"facetable": false,
"storable": true,
"sortable": false,
"multiValued": true,
"searchable": true
},
"displayName": "Ingredients",
"isCanonical": false,
"resettableStatus": "RESETTABLE"
}
],
"siteId": 158
}
Response Codes:
200 OK– Successfully updated; returns updated JSON.400 Bad Request– Validation failed; returns error details.
{
"code": 400,
"details": "Attributes Failed Validation: ingredients must not be multivalued and sortable",
"message": "Bad Request",
"status": "error"
}
Validation Rules
| Rule | Error Message |
|---|---|
| Entity detectable attribute must be searchable and facetable | entity detectable must also be searchable and facetable |
| Facetable attribute must be filterable | <attribute> must be filterable when facetable |
| Canonical product attributes must be single-valued (except product_category_name, product_category_external_id) | All canonical attributes must be single valued except product_category_name, product_category_external_id |
| Multi-valued attributes cannot be sortable | Only single values attributes may be sortable |
| product_external_id and content_external_id must be filterable and storable | <attribute> must be filterable and storable |
| Image attributes must be storable | <attribute> must be storable |